February 5, 2021 · 1 min read
You aren't gonna need it. That's a programming principle from extreme programming. It states that functionality should not be added until deemed necessary. Let's explore how YAGNI is useful in software development, and as a general productivity tool.
January 22, 2021 · 1 min read
You know the Pareto principle, right? For many situations, 80% of the consequences come from 20% of the causes. The Pareto principle actually applies to two aspects in software development...
January 8, 2021 · 1 min read
Every programmer has used one. Read-eval-print loops (or REPLs) are a centerpiece of modern software development. What exactly is a REPL, how does it work, and where can I use one? Let's find out.
December 11, 2020 · 4 min read
When you‘re developing software, bugs will appear. Some things won‘t work as expected while developing them, and others will stop working after some time. Often, the cause of a software failure is easy to find. But sometimes the hunt for a bug seems to drag on and on and on. The following are 10 of my most often used debugging strategies.
November 20, 2020 · 5 min read
There are myriads of articles online about software engineering. You encounter dozens of them every day, and every time you decide to either read that article or not. Like any profession, software developers do a much better job when they get the basics right.
May 24, 2020 · 2 min read
Software projects take longer than expected. There are many reasons for this. The one I suffer most from is to underestimate amount of work left to do. Where does this come from and how can we avoid this?
May 8, 2020 · 6 min read
When I started my software engineering journey, I used my free time to tinker with personal projects. That was one of the best decisions I ever made, in terms of time well spent.
May 1, 2020 · 6 min read
Is your code secure? Encryption, hashing, API security, SQL injections, CSRF, XSS, DOS, HSTS, RBAC, .... Oh my. When I started my programming journey, I didn't even know that I should care about software security.